﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>读取配置 - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The 读取配置 function reads a value, section or list of section names from a standard 格式化字符串 .ini file." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>读取配置</h1>

<p>从标准 ini 格式文件中读取一个值, 一个段或段名列表.</p>

<pre class="Syntax">Value := <span class="func">读取配置</span>(Filename, Section, Key <span class="optional">, Default</span>)
Section := <span class="func">读取配置</span>(Filename, Section)
SectionNames := <span class="func">读取配置</span>(Filename)</pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>Filename</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>.ini 文件名, 如果未指定绝对路径则假定在 <a href="../Variables.htm#WorkingDir">内_工作目录</a> 中.</p>
  </dd>

  <dt>Section</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>.ini 文件中的段名, 它是包含在方括号中的标题短语(在此参数中不需要加方括号).</p>
  </dd>

  <dt>Key</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>.ini 文件中的键名.</p>
  </dd>

  <dt>Default</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>如果未找到所请求的键时所返回的值. 如果省略, 失败时抛出异常.</p>
  </dd>

</dl>

<h2 id="Return_Value">返回值</h2>
<p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
<p>此函数返回指定键的实际值. 如果无法检索该值, 则返回 <em>Default</em> 参数所指示的默认值.</p>
<p>如果 <em>Key</em> 参数省略时, 函数返回整个段. 省略注释和空行. 仅检索该段的前 65,533 个字符.</p>
<p>如果 <em>Key</em> 和 <em>Section</em> 参数省略时, 函数返回以换行符(<code>`n</code>) 分隔的段名列表.</p>

<h2 id="Error_Handling">错误处理</h2>
<p>只有当 <em>Default</em> 被省略时, 才会在失败时抛出异常 .</p>
<p>无论是否抛出异常, <a href="../Variables.htm#LastError">内_错误代码</a> 都会被设置为操作系统的 GetLastError() 函数的结果.</p>

<h2 id="Remarks">备注</h2>
<p>操作系统会自动忽略获取字符串中的前导和尾随空格/制表符. 为避免此情况, 请将字符串括在单引号或双引号中. 最外层的单引号或双引号会被忽略, 但引号内的任何空格都会保留下来.</p>
<p>超过 65535 个字符的值可能会产生不一致的结果.</p>
<p>标准的 ini 文件看起来类似下面这样:</p>
<pre>[SectionName]
Key=Value</pre>
<p><b>Unicode:</b> 读取配置 和 配置写 依靠外部函数 <a href="http://msdn.microsoft.com/en-us/library/ms724353.aspx">GetPrivateProfileString</a> 和 <a href="http://msdn.microsoft.com/en-us/library/ms725501.aspx">WritePrivateProfileString</a> 来读取和写入值. 这些函数只支持 UTF-16 件中的 Unicode; 所有其他文件都假定使用系统的默认 ANSI 代码页.</p>
<h2 id="Related">相关</h2>
<p><a href="IniDelete.htm">配置删</a>, <a href="IniWrite.htm">配置写</a>, <a href="RegRead.htm">读注册表</a>, <a href="LoopRead.htm">file-reading 循环</a>, <a href="FileRead.htm">读文件</a></p>
<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a href="#ExBasic">#1</a></p>
<pre>Value := 读取配置("C:\Temp\myfile.ini", "section2", "key")
信息框 "The value is " Value</pre>
</div>

</body>
</html>